# 2.分支结构
#2.1 if判断
#案例
# 定义变量
age = 16
# 判断：有个表达式结果是布尔值
# 条件：age >= 18
if age >= 18:
    print("允许进网吧happy~")
# 思考：下面这句话什么时候执行
print("猜猜我啥时候执行？")
# 结论：
# if条件成立执行内部代码，否则不执行if内部代码，默认按照代码顺序向下执行



#2.2 if 和else判断
# 输入用户年龄
age = int(input("请输入用户年龄："))
# 判断年龄：条件是否18
if age >= 18:
# 满足条件
    print("允许进网吧happy~")
else:
# 不满足条件
    print("回家写作业吧~")
# 结论：
# if 和 else 成对出现时需要对齐，else不能单独使用
# if 后面有条件 else 后面直接冒号，if 和 else 内部代码必须有缩进



#2.3 逻辑运算符条件
# and 构成条件
# # 1.定义整数变量
age = 19
# # 2.判断年龄是否正确(0~120) ‐‐> age >0 and age < 120
# # if 0 < age < 120: # 这是python推荐的写法
if age > 0 and age < 120:
     print("年龄正确")
# or 构成条件
# # 1.定义变量
python_score = 80
c_score = 30
# # 2.判断成绩(只要有一门大于60即可)‐‐> python_score > 60 or c_score >60
if python_score > 60 or c_score > 60:
    print("成绩合格")
# not 构成条件
# 定义变量(True表示本公司员工)
# 定义变量
employer = False # 假设已经固定值
# if not employer: # 等价于 not (employer is False)
if not (employer is False): # 如果条件成立，相当于 employer是一个真值（为真【True】）
    print("公司员工")
else:
    print("不是公司员工")




#2.4 elif的多重判断
# 定义分数变量
score = int(input("请输入分数："))
# 判断分数
if score >= 90:
    print("优")
elif 80 <= score < 90:
    print("良")
elif 70 <= score < 80:
    print("中")
elif 60 <= score < 70:
    print("差")
# 上述条件都不满足时执行else
else:
    print("不及格")



#2.5 if的嵌套
#定义变量
has_ticket = input("请确认是否有票：") # 不输入就是无票、输入任意字符表示有票
if has_ticket:
    knife_length = int(input("请输入刀的长度："))
    if knife_length >= 20:
        print("不允许上车")
    else:
        print("安检通过，允许上车")
else:
    print("没票不允许进门")
# 写代码的核心：编程思想 ‐‐> 理解需求 ‐‐> 提炼转换语句（逻辑）
# 思考：如果变量的值需要变化，怎么处理？
# ①input函数输入的任意字符都会当做字符串
# ②在python中任意非空或非0数据就是真值




